package com.base.service.system.role;

import java.util.List;

import com.base.entity.system.Role;
import com.base.util.PageData;

public interface RoleService {
	
	//新增角色
	public void addRole(Role role) throws Exception;
	
	//根据ID删除角色
	public void deleteRoleById(Role role) throws Exception;
	
	//根据ID修改角色
	public void editRoleById(Role role) throws Exception;
	
	//根据ID查看角色
	public Role findRoleById(int role_id) throws Exception;
	
	//找到当前最大的角色ID
	public Integer findMaxRoleId() throws Exception;
	
	//查看所有角色
	public List<Role> findAllRole() throws Exception;
	
	//根据菜单ID和角色ID设置该菜单对该角色是否可见。
	public void setVisibleByMenuIdAndRoleId(Role role) throws Exception;
	
	public List<Role> listAllERRoles() throws Exception ;
	
	
	public List<Role> listAllappERRoles() throws Exception ;
	
	
	public List<Role> listAllRoles() throws Exception ;
	
	//通过当前登录用的角色id获取管理权限数据
	public PageData findGLbyrid(PageData pd) throws Exception ;
	
	//通过当前登录用的角色id获取用户权限数据
	public PageData findYHbyrid(PageData pd) throws Exception ;
	
	//列出此角色下的所有用户
	public List<PageData> listAllUByRid(PageData pd) throws Exception ;
	
	//列出此角色下的所有会员
	public List<PageData> listAllAppUByRid(PageData pd) throws Exception ;
	
	/**
	 * 列出此部门的所有下级
	 */
	public List<Role> listAllRolesByPId(PageData pd) throws Exception ;
	
	//列出K权限表里的数据 
	public List<PageData> listAllkefu(PageData pd) throws Exception ;
	
	//列出G权限表里的数据 
	public List<PageData> listAllGysQX(PageData pd) throws Exception ;
	
	//删除K权限表里对应的数据
	public void deleteKeFuById(String roleId) throws Exception ;
	
	//删除G权限表里对应的数据
	public void deleteGById(String roleId) throws Exception ;
	
	public void deleteRoleById(String roleId) throws Exception ;

	public Role getRoleById(String roleId) throws Exception ;

	public void updateRoleRights(Role role) throws Exception ;
	
	/**
	 * 给全部子职位加菜单权限
	 */
	public void setAllRights(PageData pd) throws Exception ;
	
	/**
	 * 添加
	 */
	public void add(PageData pd) throws Exception ;
	
	/**
	 * 保存客服权限
	 */
	public void saveKeFu(PageData pd) throws Exception ;
	
	/**
	 * 保存G权限
	 */
	public void saveGYSQX(PageData pd) throws Exception ;
	
	/**
	 * 通过id查找
	 */
	public PageData findObjectById(PageData pd) throws Exception ;
	
	/**
	 * 编辑角色
	 */
	public PageData edit(PageData pd) throws Exception ;
}
